V tomto přehledu neuvádím překlepy, která nemohou narušit smysl textu.
Skriptum bylo vytištěno poprvé v roce 1998, následoval dotisk v r. 1999; v něm byla některá nedopatření odstraněna. Hvězdičky ve sloupcích 98, 99 naznačují, ve kterých tiscích se lze s uvedenou chybou setkat. Jestliže je v uvedeném řádku hvězdička ve sloupci 98 a není ve sloupci 99, znamená to, že chyba se vyskytovala v exemplářích vytištěných v r. 1998 a byla odstraněna v emplářích vytištěných v r. 1999.
Poznámky a opravy k 2. vydání Poznámky a opravy k 3. vydání
Strana | Řádek | Je | Má být | 98 | 99 | |
3 | 18. shora | ...není jeho prostou podmnožinou. | ...není jeho prostou nadmnožinou. | * | ||
14 | 20. shora | #ifndef __KOMPLRX_H__ | #ifndef __KOMPLEX_H__ | * | ||
19 | 20. shora | : re(_re), im(0) | : re(_re), im(_im) | * | ||
23 | 8. zdola | #include "fah.h" | #include "fak.h" | * | ||
26 | 16. zdola | (Chybí řádek) #include "napis.h" | * | |||
27 | 9. zdola | ... jediný parametr p | ... jediný parametr x | * | ||
27 | 8. zdola | ... [] za identifikátorem p | ... [] za identifikátorem x | * | ||
34 | 19. shora | complec operator*(complex c); | complex operator*(complex c); | * | ||
35 | 15. zdola | ... operátorové funkce na výpisu 2.3... | ... operátorové funkce na výpisu 2.10... | * | ||
44 | 14.-24. zdola | (Výpis metodyvlozNaKonec()) | (Metoda nevrací adresu nového prvku, jak slibuje komentář, ale adresu zarážky seznamu.) | * | ||
45 | 20. zdola | ... vidíte na výpisu 3.6... | ... vidíte na výpisu 3.16... | * | ||
45 | 2. a 3. zdola | :? | ?: | * | ||
46 | 1. a 2. shora | ...mezi znaky : a ?, jinak je výsledek roven výrazu za otazníkem. | ...mezi znaky ? a :, jinak je výsledek roven výrazu za dvojtečkou. | * | ||
52 | 26. zdola | /* ...stejné jako na výpisu 3.5 ...*/ | /* ...stejné jako na výpisu 3.15 ...*/ | * | ||
64 | 13. zdola | // i je v lokální bloku... | // j je lokální v bloku... | * | * | |
69 | 1. zdola | Podrobněji viz oddíl 6.4. | Podrobněji viz oddíl 6.6. | * | ||
89 | 3. zdola | Obr. 8.1 Pole Mat[4][4] | Obr. 8.2 Pole Mat[4][3] | * | ||
94 | 15. zdola | Chceme např. alokovat matici typu int se 3 řádky a 4 sloupci. Nejprve tedy deklarujeme typ radek jako pole se 4 prvky... | Chceme např. alokovat matici typu int se 4 řádky a 3 sloupci. Nejprve tedy deklarujeme typ radek jako pole se 3 prvky... | * | ||
94 | 6. zdola | int (*Mat)[3] = new radek[4]; | int (*Mat)[3] = new int[4][3]; | * | ||
97 | 6. shora | Pokud užijeme delete na proměnnou... | Pokud užijeme delete na ukazatel... | * | * | |
101 | 9. zdola | void f(char c*); | void f(char *c); | * | ||
110 | obrázek | (Svorka vyznačující velikost segmentu je příliš veliká, má označovat pouze rozsah mezi dvěma silnějšími čarami ve schématu naznačujícím paměť.) | * | * | ||
114 | 10. zdola | ale | ale všechny hodnoty nejmenšího bitového pole, do kterého lze uložit hodnoty všech výčtových konstant. Na PC to znamená | * | * | |
114 | 7. a 9. zdola | 2N větší nebo rovné | 2N větší než | * | * | |
127 | 14. zdola | * ( postfixový_výraz ) . identifikátor | (* postfixový_výraz ) . identifikátor | * | * | |
132 | 18. shora | void (X::UF) = &X::f; | void (X::UF)() = &X::f; | * | * | |
148 | 18. shora | a) označení char, ... | (ve výčtu chybí bool) | * | * | |
162 | 12. zdola | Jazyk C++ požaduje, abychom při volání funkce vždy uvedli všechny parametry. | (Tato věta je formulováma poněkud nešťastně, a proto vyžaduje podrobnější vysvětlení. Překladač jazyka C nemusí při překladu volání funkce znát její prototyp. Pokud ho nezná, nemusíme uvést všechny parametry — je na nás, abychom věděli, že se nepředané parametry opravdu nepoužijí. Na druhé straně překladač jazyka C++ znalost prototypu vyžaduje a parametry musíme uvést všechny — s výjimkou případu, kdy se použijí jejich implicitní hodnoty. (Překladač si za neuvedené parametry doplní jejich implicitní hodnoty.) To ale znamená, že se funkce zavolá vždy se stejným počtem parametrů, jako je v definici — buď je vypíšeme sami, nebo si je doplní překladač.) | * | * | |
166 | 3. shora | Modifikátor inline vždy znamená interní linkování.. | (To platilo ve starších překladačích. V ISO C++ modifikátor inline nevyjadřuje způsob linkování.) | * | * | |
199 | 9. shora | modifikátor: jeden z inline explicit |
modifikátor: inline explicit | * | * | |
209 | 23. shora | jako chráněného (private), | jako chráněného (protected), | * | ||
223 | 22. zdola | Operátory :?, :: ... | Operátory ?:, :: ... | * | ||
242 | 17. shora | template< ...> deklarace; | template< ...> deklarace (bez středníku na konci) | * | * | |
242 | 17. zdola | Za deklarací šablony musí být středník. | Deklarace šablony musí být ukončena středníkem (pokud nejde o definiční deklaraci šablony metody objektového typu nebo funkce). | * | * | |
245 | 19. shora | Její šablona musí... | Šablona statického atributu musí... | * | ||
245 | 23. shora | Tato inicializace znamená implicitní hodnotu, kterou můžeme v explicitní deklaraci přepsat. | (To platilo v návrhu standardu, dnes se ke změně hodnoty pro konkrétní hodnoty parametrů používá explicitní specializace — viz následující opravu.) | * | * | |
245 | 15. zdola | int matice<int,3>::pocet_matic=6; | (Takhle se to dělalo v době vzniku skripta; podle standardu ale musíme napsat:) template<> int matice<int,3>::pocet_matic=6; (Dnešní překladače ovšem starší zápis také akceptují.) | * | * | |
246 | 20. zdola | I když se šablony ... dosud neimplementuje. | (To už neplatí, nejnovější překladače je implementují.) | * | * | |
247 | 1. shora | ptr<t>::operator ptr<R>() | ptr<T>::operator ptr<R>() | * | * | |
250 | 16. shora | ...C++ nabízí tzv. specializaci šablon,... | ...C++ nabízí tzv. parciální specializaci šablon,... | * | * | |
251 | 13. shora | Podobně lze specializovat také šablony funkcí. | (Nelze, to ISO C++ nedovoluje.) | * | * | |
253 | 19. zdola | Obyčejné funkce smějí mít... | Šablony obyčejných funkcí smějí mít... | * | ||
261 | 19. zdola | ...uvést před handlerem, jehož parametr je typu potomek. | ...uvést za handlerem, jehož parametr je typu potomek. | * | * | |
285 | 13. zdola | Tím hodnotu x prostě zahodíme. | Tím hodnotu v prostě zahodíme. | * | * | |
285 | 6. zdola | Může konvertovat potomka na nevirtuálního předka, ... | Může konvertovat předka na nevirtuálního potomka, ... | * | ||
285 | 3. zdola | výraz x ukazuje... | výraz v ukazuje... | * | * | |
287 | 20. zdola | ... i přetypování na virtuálního předka... | ... i přetypování na virtuálního potomka... | * | * | |
288 | 25. zdola | ... jako jediného veřejně přístupného předka... | ... jako jednoznačného veřejně přístupného předka... | * | * | |
288 | 25. zdola | ... i o přetypování na virtuálního předka... | ... i přetypování na virtuálního potomka... | * | * | |
290 | 3. shora | ... v přetypování const_cast<Y>(v)... | ... v přetypování const_cast<T>(v)... | * | * | |
293 | 15. zdola | ...neboť nezná proměnnou Alfa::a. | neboť nezná proměnnou Alfa::b. | * | * | |
304 | 17. shora | (tab. 20.3) | (tab. 20.4) | * | ||
309 | 23. zdola | ...přečte ze vstupního proudu nejvýše i znaků... | ...přečte ze vstupního proudu nejvýše i-1 znaků... | * | * | |
309 | 7. zdola | ...přeskočí i znaků... | ...přeskočí n znaků... | * | * | |
317 | 18. shora | parametr typu iosbase::fmtflags | parametr typu ios_base::fmtflags | * | * | |
328 | 3. zdola | P Ukazatel | p Ukazatel (má být malé p) | * | ||
336 | 1. nad tab. | fnctl.h | fcntl.h | * | ||
337 | 23. zdola | #include <fnctl.h> | #include <fcntl.h> | * | ||
341 | pod obrázkem | Obr. 20.3 | Obr. 20.23 | * | ||
346 | 4. shora | hovořili jsme o nich v 8. | hovořili jsme o nich v 14.2. | * | * | |
350 | 3. zdola | Pro přidávání prvků na počátek nebo na konec pole máme metody push_back() a pop_back(). | Pro přidávání prvků na počátek nebo na konec pole máme metody push_front() a push_back().. |
Na začátek stránky
Moje domovská stránka
Seznam publikací
Poznámky